Prevention of Code-Injection Attacks by Encrypting System Call Arguments
نویسندگان
چکیده
Buffer overflow attacks are still a serious threat to the security of software systems. One of the most important classes of buffer overflow attacks is code-injection attacks, in which malicious code is injected into a memory area of vulnerable software and eventually executed. In this paper, we propose a simple and effective method for preventing code-injection attacks. The basic idea is to adopt a security-enhanced convention of system call invocations in which system call IDs and arguments are “encrypted” before being passed to the kernel and then “decrypted” at the beginning of in-kernel procedures. This is achieved with a modified standard library and a kernel module. In environments where the method is applied, injected code is likely to fail in executing system calls because their IDs and arguments are likely to be decrypted into meaningless values. We implemented the method on a Linux/IA-32 machine and measured the performance of real applications including GCC, LATEX, wget, and Apache. Experimental results showed that the incurred performance overhead ranged from 0.1% to 15.0%.
منابع مشابه
I Control Your Code Attack Vectors through the Eyes of Software-based Fault Isolation
Exploits are an interesting way to extend the functionality of programs. This paper presents and explains different attack vectors, namely stack-based and heap-based code injection, arc attacks on the heap as well as on the stack, format string attacks, arithmetic overflows, data attacks, and mixed ISA attacks. These attacks can be used (often in combination with other attacks) to execute arbit...
متن کاملProtecting Against Unexpected System Calls
This paper proposes a comprehensive set of techniques which limit the scope of remote code injection attacks. These techniques prevent any injected code from making system calls and thus restrict the capabilities of an attacker. In defending against the traditional ways of harming a system these techniques significantly raise the bar for compromising the host system forcing the attack code to t...
متن کاملSide channel parameter characteristics of code injection attacks
Embedded systems are suggestive targets for code injection attacks in the recent years. Software protection mechanisms, and in general computers, are not usually applicable in embedded systems since they have limited resources like memory and process power. In this paper we investigate side channel characteristics of embedded systems and their applicability in code injection attack detection. T...
متن کاملDetecting Network-based Obfuscated Code Injection Attacks Using Sandboxing
Intrusion detection systems (IDSs) are widely recognised as the last line of defence often used to enable incident response when intrusion prevention mechanisms are ineffective, or have been compromised. A signature based network IDS (NIDS) which operates by comparing network traffic to a database of suspicious activity patterns (known as signatures) is a popular solution due to its ease of dep...
متن کاملSelf-encrypting Code to Protect Against Analysis and Tampering
Confidentiality and data authenticity are two basic concepts in security. The first guarantees secrecy of a message, while the latter protects its integrity. This paper examines the use of encryption to secure software static analysis and tampering attacks. We present the concept of code encryption, which offers confidentiality, and a method to create code dependencies that implicitly protect i...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006